package cl.ncx.cmvrc.persistence.bean.gestorFlota;

import javax.ejb.EJBException;
import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import cl.ncx.cmvrc.persistence.base.entities.localizacion.Direccion;
import cl.ncx.cmvrc.persistence.base.entities.solicitud.Solicitud;

@Stateless(mappedName=IGestorFlotaSession.JNDI_NAME)
@Local({GestorFlotaSessionLocal.class})
@Remote({GestorFlotaSessionRemote.class})

public class GestorFlotaSessionBean implements GestorFlotaSessionLocal, GestorFlotaSessionRemote {

	@PersistenceContext(unitName="cmvrcPU")
	private EntityManager entityManager;
	
	public GestorFlotaSessionBean findRutasAlternativas(Direccion direccion) throws EJBException{
		
		try{
			GestorFlotaSessionBean rutas = entityManager.find(GestorFlotaSessionBean.class, direccion);
			return rutas;
		}catch (Exception e) {
			e.printStackTrace();
			throw new EJBException(e);
		}
	}
	
	public void ingresaDemora(Solicitud solicitud) throws EJBException{
		
		try{
			Solicitud demora = new Solicitud();
			demora = entityManager.find(Solicitud.class, solicitud);
			demora.setSolicitudId(solicitud.getSolicitudId());
			demora.setAutoridad(solicitud.getAutoridad());
			demora.setMotivo(solicitud.getMotivo());
			demora.setFecha(solicitud.getFecha());
			
			entityManager.persist(solicitud);
			
		}catch (Exception e) {
			e.printStackTrace();
			throw new EJBException(e);
		}
	}
	
	public void modificaUbicacion(Direccion direccion) throws EJBException{
		
		try{
			Direccion ubicacion = new Direccion();
			ubicacion = entityManager.find(Direccion.class, direccion);
			ubicacion.setComuna(direccion.getComuna());
			ubicacion.setCalle(direccion.getCalle());
			ubicacion.setDireccionId(direccion.getDireccionId());
			ubicacion.setSolicituds(direccion.getSolicituds());
			
			entityManager.merge(ubicacion);
			
		}catch (Exception e) {
			e.printStackTrace();
			throw new EJBException(e);
		}
	}
	
	public void redefinirPlazoRecepcion() throws EJBException{
		try{
			
			
		}catch (Exception e) {
			e.printStackTrace();
			throw new EJBException(e);
		}
	}

}

